/*
 * Variable.h
 *
 *  Created on: May 7, 2011
 *      Author: trungtq
 */

#ifndef VARIABLE_H_
#define VARIABLE_H_

#include <string>
#include <set>

using namespace std;

class Variable {

public:
    Variable();
    Variable(string name);
    virtual ~Variable();

private:
    string name;

public:
    // getter & setter
    string getName() const;
    void setName(string name);

public:
    string toString() const;
};


class VariableCompare {
public:
    bool operator() (Variable var1, Variable var2) {
        string s1 = var1.toString();
        string s2 = var2.toString();
        return (s1.compare(s2) < 0);
    }
};

typedef set<Variable, VariableCompare> VariableSet;

#endif /* VARIABLE_H_ */
